/**
 * @(#)SyncHeatMapper.java  
 *
 * Copyright (c) 2014-2014  苏州犀牛网络科技有限公司 版权所有
 * xiniunet. All rights reserved.
 *
 * This software is the confidential and proprietary
 * information of  xiniunet.
 * ("Confidential Information"). You shall not disclose
 * such Confidential Information and shall use it only
 * in accordance with the terms of the contract agreement
 * you entered into with xiniunet.
 */
package com.showcal.thermalcontrol.dal;

import com.showcal.service.domain.UnRemarkPhoto;
import com.showcal.service.domain.UnRemarkPhotoUser;
import com.showcal.service.po.RemarkPO;
import com.showcal.service.request.UnRemarkPhotoGetRequest;
import com.showcal.thermalcontrol.po.ThermalHeatDetaiSubPO;
import com.showcal.thermalcontrol.po.ThermalHeatDetailPO;
import com.xiniunet.framework.annotation.MyBatisRepository;
import com.xiniunet.framework.security.Passport;
import org.apache.ibatis.annotations.Param;
import com.showcal.thermalcontrol.po.SyncHeatPO;
import com.showcal.thermalcontrol.request.*;
import java.util.List;

/**
 * Created by 顾志雄 on 2015-09-15 13:46:59.
 * @author 顾志雄
 */
@MyBatisRepository("ThermalcontrolSyncHeatMapper")
public interface SyncHeatMapper extends SyncHeatMapperAuto {

    /**
     * 更新实体对象
     *
     * @param request 请求对象
     * @return 受影响的记录条数
     */
    long update(@Param("request") SyncHeatPO request, @Param("passport") Passport passport);

    /**
     * 获取所有对象列表
     *
     * @param passport 用户护照
     * @return 实体对象集合
     */
    List<SyncHeatPO> getAllList(@Param("request") SyncHeatGetAllListRequest request, @Param("passport") Passport passport);



    /**
     * 模糊搜索对象列表
     *
     * @param request 请求对象
     * @param passport 用户护照
     * @return 实体对象列表集合
     */
    List<SyncHeatPO> search(@Param("request") SyncHeatSearchRequest request, @Param("passport") Passport passport);

    /**
     * 模糊搜索对象列表总数
     *
     * @param request 请求对象
     * @param passport 用户护照
     * @return 实体对象列表集合总数
     */
    long searchCount(@Param("request") SyncHeatSearchRequest request, @Param("passport") Passport passport);


    /**
     * 高级查询对象列表
     *
     * @param request 请求对象
     * @param passport 用户护照
     * @return 实体对象列表集合
     */
    List<SyncHeatPO> find(@Param("request") SyncHeatFindRequest request, @Param("passport") Passport passport);

    /**
     * 高级查询对象列表总数
     *
     * @param request 请求对象
     * @param passport 用户护照
     * @return 实体对象列表集合总数
     */
    long findCount(@Param("request") SyncHeatFindRequest request, @Param("passport") Passport passport);

    /**
     * 热控详情
     * @param request
     * @param passport
     * @return
     */
    List<ThermalHeatDetailPO>  findThermalHeatDetail(@Param("request")ThermalHeatDetailRequest request, Passport passport);

    /**
     * 热控详情子页面
     * @param request
     * @param passport
     * @return
     */
    List<ThermalHeatDetaiSubPO>  findThermalHeatDetailSub(@Param("request")ThermalHeatDetaiSubRequest request, Passport passport);

    /**
     * 照片上传未评论数
     * @return
     */
    Integer getPhotoRemarkCount(@Param("passport") Passport passport);

    /**
     * 获取未评论照片用户信息
     * @param request
     * @param passport
     * @return
     */
    List<UnRemarkPhotoUser> getUnRemarkPhotoUser(@Param("request")UnRemarkPhotoGetRequest request, @Param("passport")Passport passport);

    /**
     * 获取未评论照片信息
     * @param remarkPO
     * @param passport
     * @return
     */
    List<UnRemarkPhoto> getRemarkPhotoList(@Param("request")RemarkPO remarkPO, @Param("passport")Passport passport);

    /**
     * 获取未评论照片用户数
     * @param request
     * @param passport
     * @return
     */
    Long getUnRemarkUserCount(@Param("request")UnRemarkPhotoGetRequest request, @Param("passport")Passport passport);
    
}
